package com.tdam2011.grupo06.model;

import android.text.format.DateFormat;

import java.util.Calendar;
import java.util.Comparator;
import java.util.Date;

import com.tdam2011.grupo06.R;

import android.app.Activity;
import android.graphics.drawable.Drawable;

public class ItemConectividad
{
	protected int tipo;
	protected int id;
	protected Date fecha;
	protected int accion;
	public static final int tipoWIFI = 1;
	public static final int tipo3G = 2;	
	public static final int tipoConecto = 1;
	public static final int tipoDesconecto = 2;

	public ItemConectividad(int i, int ti, Date f, int a)
	{
		id = i;
		tipo = ti;
		fecha = f;
		accion = a;
	}
	
	public ItemConectividad()
	{
		id = 0;
		tipo = 0;
		fecha = new Date();
		accion = 0;
	}
	
	public int getId() {
		return id;
	}

	public void setAccion(int a) {
		this.accion = a;
	}
	
	public int getAccion() {
		return accion;
	}

	public void setId(int i) {
		this.id = i;
	}
	
	public int getTipo()
	{
		return tipo;
	}

	public void setTipo(int tipo) {
		this.tipo = tipo;
	}
	
	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	
	public String getFechaString() 
	{
		return (String) DateFormat.format("kk:mm dd-MM-yyyy",fecha);
	}
	
	public Drawable getTipoDrawable(Activity caller)
	{
		switch (tipo)
		{
			case tipoWIFI:
				return caller.getResources().getDrawable(R.drawable.ic_wifi);
			case tipo3G:
				return caller.getResources().getDrawable(R.drawable.ic_3g);
			default:
				return null;		
		}
	}
	
	public String getAccionString(Activity caller)
	{
		switch (accion)
		{
			case tipoConecto:
				return caller.getResources().getString(R.string.conecto);
			case tipoDesconecto:
				return caller.getResources().getString(R.string.desconecto);
			default:
				return null;		
		}
	}
	
	public static Comparator<ItemConectividad> comparadorFechaAsc = new Comparator<ItemConectividad>()
	{
		public int compare(ItemConectividad thisOne, ItemConectividad another) 
		{
			Calendar este = Calendar.getInstance();
			este.setTime(thisOne.fecha);
			Calendar otro = Calendar.getInstance();
			otro.setTime(another.fecha);
			return este.compareTo(otro);
		}
	};
	
	public static Comparator<ItemConectividad> comparadorFechaDesc = new Comparator<ItemConectividad>()
	{
		public int compare(ItemConectividad thisOne, ItemConectividad another) 
		{
			Calendar este = Calendar.getInstance();
			este.setTime(thisOne.fecha);
			Calendar otro = Calendar.getInstance();
			otro.setTime(another.fecha);
			return otro.compareTo(este);
		}
	};
	
	public static Comparator<ItemConectividad> comparadorAccionAsc = new Comparator<ItemConectividad>()
	{
		public int compare(ItemConectividad thisOne, ItemConectividad another) 
		{
			return another.accion-thisOne.accion;
		}
	};
	
	public static Comparator<ItemConectividad> comparadorAccionDesc = new Comparator<ItemConectividad>()
	{
		public int compare(ItemConectividad thisOne, ItemConectividad another) 
		{
			return thisOne.accion-another.accion;
		}
	};
	
	public static Comparator<ItemConectividad> comparadorTipoAsc = new Comparator<ItemConectividad>()
	{
		public int compare(ItemConectividad thisOne, ItemConectividad another) 
		{
			return another.tipo-thisOne.tipo;
		}
	};
	
	public static Comparator<ItemConectividad> comparadorTipoDesc = new Comparator<ItemConectividad>()
	{
		public int compare(ItemConectividad thisOne, ItemConectividad another) 
		{
			return thisOne.tipo-another.tipo;
		}
	};
}
